package com.quanyan.place.biz;

import com.quanyan.common.Plugin.PageObj;
import com.quanyan.place.entity.TbCity;
import com.quanyan.place.entity.TbCityRegion;
import com.quanyan.place.entity.TbCommonParameter;
import com.quanyan.place.entity.TbDistrict;
import com.quanyan.place.entity.TbProvince;
import com.quanyan.place.entity.apiresp.RespCategory;
import com.quanyan.place.entity.base.apiresp.RespDistrict;

import java.util.HashMap;
import java.util.List;

/**
 * @author dongsheng.lin
 * @date 2017/5/1510:08
 */
public interface ConfigService {

    /**
     * 获取配置项列表
     * @return
     */
    List<TbCommonParameter> getCommonParameters();

    /**
     * 通过关键字获得配置项
     * @param parameterKey
     * @return
     */
    TbCommonParameter getCommonParameter(String parameterKey);

    /**
     * 获取运动类目
     * @return
     */
    List<RespCategory> getSysCategroyInfo();

    /**
     * 获取省份列表
     * @return
     */
    List<TbProvince> getProvinces();

    /**
     * 分页获取省份列表
     * @param pageNum
     * @param pageSize
     * @param keyWords
     * @return
     */
    PageObj<List<TbProvince>> getProvincesByPage(int pageNum, int pageSize, String keyWords);

    /**
     * 获取城市列表
     * @return
     */
    List<TbCity> getCities();

    /**
     * 获取单个城市对象
     * @param cityId
     * @return
     */
    TbCity getCity(int cityId);

    /**
     * 分页获取城市列表
     * @param provinceId
     * @param pageNum
     * @param pageSize
     * @param keyWords
     * @return
     */
    PageObj<List<TbCity>> getCitiesByPage(Integer provinceId, Integer pageNum, Integer pageSize, String keyWords);

    /**
     * 获取区域列表
     * @return
     */
    List<TbDistrict> getDistricts();

    /**
     * 获取单个区域对象
     * @param districtId
     * @return
     */
    TbDistrict getDistrictById(int districtId);

    /**
     * 获取区域列表
     * @param cityId
     * @return
     */
    List<RespDistrict> getDistrictsByCityId(int cityId);

    /**
     * 获取字典集合
     * @param tagGroup
     * @return
     */
    HashMap<String,String> getDictsByTagGroupToCache(String tagGroup);

    /**
     * 通过城市id获取自定义区域列表
     * @param cityId
     * @return
     */
    List<TbCityRegion> getRegionByCityId(int cityId);
}
